// Exibe e oculta a janela baseado em parametros de um hiperlink
function modalBox(titulo){
	baseUrl = $('base').attr('href');
	controller= location.href;
	hash= location.hash;
	if(hash.indexOf("-") > 0 ){
		hash = hash.split('-');
		hash = hash[0]+"/?id="+hash[1];		
	}
	controller=controller.replace(baseUrl, "");
	controllerArray= controller.split('/');
	acao= "./"+controllerArray[0]+"/"+hash.replace("#", "");
	$("#modalBox").animate({top:"30px"},'fast');
	$(".tituloModal").html(titulo);
	loading = '<img src="public_html/imagens/closing.gif" class="load" />';
	$('#conteudo div, #painelLateral, #conteudo form, #login').not('#modalBox').not('#modalBox div')
	.animate({opacity: '0.1'}, 0.5);
	$('body').css("overflow-y", "hidden");
	$("#conteudoModal").html(loading).load(acao, function(){posModal()});
}
// ativa funcoes quando a janela modal esta aberta
function posModal(){
	// Caso o campo fileupload exista inclui o script de upload;
	if($('#fileupload').length){
		$.getScript('public_html/js/upload.js');
	}
	
	// trata a incompatibilidade de alguns navegadores com os inputs tipo data
	if($('input[type=date]').length){
		if (!Modernizr.inputtypes.date) {
			$.getScript('public_html/js/html5.js');
		}
	}
	
	// Ao clicar em um link da janela modal que não possua a classe externo o mesmo é aberto dentro da modal
	$("#conteudoModal a").not(".externo").click(function(){
		hrefLink = $(this).attr('href');
		loading = '<img src="public_html/imagens/closing.gif" class="load" />';
		$("#conteudoModal").html(loading).load(hrefLink, function(){ posModal();});
		return false;
	});
	// Inclui um calendário no campo data de abertura no cadastro da OS;
	if($('#abertura_os').length){
		$('#abertura_os').datetimepicker({
			closeText: 'Fechar',
			prevText: 'Anterior',
			dateFormat: 'dd/mm/yy',
			timeText: 'Horário',
			hourText: 'Horas',
			minuteText: 'Minutos',
			dayNamesMin: ['D','S','T','Q','Q','S','S'],
			monthNames: ['Janeiro','Fevereiro','Маrço','Abril','Маio','Junho','Julho','Аgosto','Setembro',
			'Оutubro','Novembro','Dezembro'],
			currentText: 'Agora'	
		});
	}
	
	// Ao enviar um formulario de dentro da modal, trata-lo via requisicao ajax.
	$('form').submit(function(){
		params= $(this).serialize();
		if($('#conf_pass').length>0){
		 	if($('#conf_pass').val() != $('#senha_user').val())	{
				alert('As senhas não estão iguais!');
				return false; 
			}
		};
		action = $(this).attr('action');
		loading = '<img src="public_html/imagens/load.gif" class="load" />';
		$("#conteudoModal").html(loading).load(action + "/?acao=inserir&" + params, function(){ posModal();});
		return false;	
	});
	
	// Cria uma lista com os recursos atribuidos a uma OS especifica na tela de detalhamento da OS.
	if($("#atividadesAjax").length && $("#atividadesAjax").html() == '&nbsp;'){
		$("#atividadesAjax").load('atividade/listar/?os=' + $("#idUpd").val(), function(){posModal();});
	}
	
	// Cria uma paginação para os nomes de recurso atribuidos a uma OS
	$(".lsModal").jTPS( {
		perPages:[10,20,30,40,'TODOS'],
		scrollStep:1,
		perPageText:'Mostrar:',	
		scrollDelay:30
	});
	
	// Insere o indice do recurso na OS
	$("#id_recurso").on("change", function(){
		baseUrl = $('base').attr('href');
		idRecurso = $(this).val();
		$.ajax({
  			url: baseUrl + "recursos/indice/?id="+idRecurso
		}).done(function(data) {
  			$("#vl_custo_atividade").val(data);
		});
	});
}

//Atualiza a página aberta
function refreshPage(){
	if(window.location.hash == ''){
		$("#conteudo, #painelLateral, #login").not('.closing').css("overflow-y", "hidden").fadeOut('slow', function(){
			window.location.reload(0);
		});		
	}
}
//Acoes a serem realizadas quando a pagina for carregada
$(document).ready(function(e) {
	// Abrir login
	$(document).on('click', this, function(e){
		e = [e.target.id, e.target.parentNode.id].join('');
		if(e !== 'login' && e !== 'nomelogin' && e !== 'nome') {
			$("#login").removeClass('ativo');
			$("#loginOpt").slideUp('fast');
		}
	});
	$("#login").click(function(){
		if($(this).attr('class') == 'ativo'){
			$(this).removeClass('ativo');
			$("#loginOpt").slideUp('fast');			
		}else{
			$(this).addClass('ativo');
			$("#loginOpt").slideDown('fast');
		}
	});
	// Abre a janela modal
	$(".openBox").on("click",function(event){
		titulo='&diams; ' + $(this).attr("data-titulo");
		acao= $(this).attr("href");
		window.location.hash=acao;
		modalBox(titulo);
		return false;
	});
	// Fecha a janela modal
	$(".closeBox").on("click",function(event){
		divClosing = '<div class="closing"><img id="theImg" src="public_html/imagens/closing.gif" /></div>';
		$('body').prepend(divClosing);
		$("#modalBox").animate({top:"-650px"},'fast');
		loading = '<img src="public_html/imagens/load.gif" class="load" />';
		atualizarLista = location.href;
		atualizarLista = atualizarLista.replace("http://", "").split("/");
		atualizarLista = atualizarLista[1];
		history.back(1);
		setTimeout('refreshPage()', 150);
		return false;
	});
	
	// Verifica se a pagina que esta sendo carregada possui alguma requisicao, caso positivo abre a modal
	$(window).load(function(){
		if(location.hash != ''){
			a = location.hash;
			a = a.replace("-r", "");
			titulo='&diams; ' + $('a[href="'+a+'"]').attr("data-titulo");
			acao= location.hash;
			modalBox(titulo);
		}
		$('body').css("overflow-y", "hidden").fadeIn('fast', function(){
			$(this).css("overflow-y", "auto");
			// Verifica se existe alguma lista na pagina e faz paginacao
			if($(".lista").length){
				var r = $.getScript("public_html/js/tablesorter.js").done(function(){
					$(".lista").jTPS( {
							perPages:[50,100,150,200,'TODOS'],
							scrollStep:1,
							perPageText:'Mostrar:',	
							scrollDelay:30,
							fixedLayout: false
					})
				});
				$("<link/>", {
				   rel: "stylesheet",
				   type: "text/css",
				   href: "public_html/css/loader.css"
				}).appendTo("head");
			}
			// Inclui uma barra de carga tabela de clientes com o percentual de horas utilizadas pelo cliente.
			var listaSize = $(".lista").css('height');
			listaSize = Number(listaSize.replace("px", ""))+50;
			$('.conteudoDinamico').animate({height: listaSize, overflow: 'auto'}, function(){
				if($(".pHead").length){
					var tt =$(".pHead").width()+9;
					$('.pvalue').css("width", tt);
					$(".progressHoras").each(function(index, element) {
					   var pt = $(element).attr("data-percent");
					   parcial =(tt*pt)/100;
					   if(parcial <= 0){
						   parcial = tt;
					   }
					   switch(true){
							case (pt>=80): cor = "#4F94CD";
								break;
							case (pt>=40 && pt<80): cor = "#00B2EE";
								break;
							case (pt<40 && pt>=10): cor = "#009ACD";
								break;
							default: cor = "#00BFFF";
								break;
					   }
					    $(element).animate({width :parcial, 'background-color': cor}, 1100, function(){
							$('.pvalue').animate({opacity: '1.0'}, 'slow');
						});
					});		 
				}
			});
		});
	});
	
	// Configura a trasicao fade entre as paginass
	$('body').toggle();
	$('.conteudoDinamico').css({height: '0px', overflow: 'hidden'});
	$(".pvalue").css({opacity: '0.0'});
	$(".menuLateral li a").click(function(event){
		event.preventDefault();
		link = this.href;
		divClosing = '<div class="closing"><img id="theImg" src="public_html/imagens/closing.gif" /></div>';
		$('body').prepend(divClosing);
		$("#conteudo, #painelLateral").css("overflow-y", "hidden").fadeOut('fast', function(){
			window.location = link;
		});        
	});
	
	// Confirma a operação de deletar uma OS
	$(document).on('click', ".del", function(){		
		if(confirm("Você deseja realmente excluir esta OS? \n Esta ação será permanente!")){
			idOS = $("#idUpd").val();
			$("#conteudoModal").load("OS/deletar/?id=" + idOS);
		}	
		return false;
	});
	
	// Confirma a operação de deletar uma um recurso que esta atribuido OS
	$(document).on("click", "#delAtv", function(){
		del1 = confirm("Você deseja realmente remover este recurso desta OS?");
		if(del1){
			id_atv = $(this).attr('data-atividade');
			$("#conteudoModal").load("Atividade/deletar/?id=" + id_atv);
		}	
		return false;
	});
	
 	// Confirma a operação de deletar um solicitante
	$(document).on("click", "#delSolicitante", function(){
		del2 = confirm("Tem certeza que deseja remover este solicitante?");
		if(del2){
			id_slc = $("#idUpd").val();
			$("#conteudoModal").load("solicitantes/deletar/?id=" + id_slc);
		}
		return false;
	});
});